<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
/* 
    1. charAt()
        + 语法: 字符串.charAt(索引)
        + 返回值: 该索引位置的字符
          => 如果没有该索引位置, 返回的是 空字符串

      2. charCodeAt()
        + 语法: 字符串.charCodeAt(索引)
        + 返回值: 该索引位置字符的 unicode 编码
          => 如果没有该索引位置, 返回的是 NaN

      3. toUpperCase()
        + 语法: 字符串.toUpperCase()
        + 返回值: 将原始字符串内的所有字母转换成大写

      4. toLowerCase()
        + 语法: 字符串.toLowerCase()
        + 返回值: 将原始字符串内的所有字母转换成小写

      5. substr()
        + 语法: 字符串.substr(开始索引, 多少个)
        + 返回值: 截取出来的部分字符串

      6. substring()
        + 语法: 字符串.substring(开始索引, 结束索引)
        + 特点: 包前不包后
        + 返回值: 截取出来的部分字符串

      7. slice()
        + 语法: 字符串.slice(开始索引, 结束索引)
        + 特点: 包前不包后, 填写负整数
        + 返回值: 截取出来的部分字符串

      8. split()
        + 语法: 字符串.split('分隔符')
        + 返回值: 是一个数组
          => 按照分隔符把字符串分开成为几段内容

      9. concat()
        + 语法: 字符串.concat(字符串1, 字符串2, ...)
        + 返回值: 拼接好的字符串

      10. indexOf()
        + 语法: 字符串.indexOf(查找的字符, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      11. lastIndexOf()
        + 语法: 字符串.lastIndexOf(字符串片段, 开始索引)
        + 返回值:
          => 如果原始字符串内有该字符串片段, 那么是该字符串片段第一次出现的首字母索引位置
          => 如果原始字符串内没有该字符串片段, 那么是 -1

      12. includes()
        + 语法: 字符串.includes(字符串片段)
        + 作用: 该字符串中是否包含该字符串片段
        + 返回值: 一个布尔值
          => true 说明有该字符串片段
          => false 说明没有该字符串片段

      13. startsWith()
        + 语法: 字符串.startsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段开头
        + 返回值: 一个布尔值
          => true 说明以该字符串片段开头
          => false 说明不以该字符串片段开头

      14. endsWith()
        + 语法: 字符串.endsWith(字符串片段)
        + 作用: 判断该字符串是否以该字符串片段结尾
        + 返回值: 一个布尔值
          => true 说明以该字符串片段结尾
          => false 说明不以该字符串片段结尾

      15. trim()
        + 语法: 字符串.trim()
        + 作用: 去除字符串首尾空白
        + 返回值: 去除首尾空白后的字符串

      16. trimStart() / trimLeft()
        + 语法:
          => 字符串.trimStart()
          => 字符串.trimLeft()
        + 返回值: 去除开始位置空白以后的字符串

      17. trimEnd() / trimRight()
        + 语法:
          => 字符串.trimEnd()
          => 字符串.trimRight()
        + 返回值: 去除结束位置空白以后的字符串

      18. repalce()
        + 语法: 字符串.replace(换下字符, 换上字符)
        + 作用: 替换原始字符串内的片段
        + 注意: 只能替换一个
        + 返回值: 替换好的字符串



*/
        // 1
        // var strs = '孔子孟子老子孙子鬼谷子韩非子,你是什么子,你是我妻子';
        // console.log(strs.charAt(6)); // 返回下标6对应的字符


        //2
        // var strs = '会当凌绝顶,一把搂住你';
        // console.log(strs.charCodeAt(2));
        // // 2的位置的字符的unicode编码 
        // //20940

        // //反过来 知道编码看字符是什么 
        // var res = String.fromCharCode(20940);
        // console.log(res);
        //3 
        // var strs = 'good good study day day up';
        // var res = strs.toUpperCase();
        // console.log(strs); // 原字符串 永不改变
        // console.log(res);

        // 4
        // var strs = 'TWO BIRDS ARE SING ON THE TREE';
        // var res = strs.toLowerCase();
        //  console.log(strs); // 原字符串 永不改变
        // console.log(res);

        // 5
        // var strs = '世界上最长的是你的套路,如果套路到你实在抱歉,我是故意的';
        // var res = strs.substr(7,4)// 下标7 截取4个
        //  console.log(strs); // 原字符串 永不改变
        // console.log(res);

        // var res = strs.substring(7,11);//[7,11)  7 8 9 10  下标7到11不包含11
        //  console.log(strs); // 原字符串 永不改变
        //  console.log(res);
        
        // var res = strs.slice(7,11);//[7,11)  7 8 9 10  下标7到11不包含11
        //  console.log(strs); // 原字符串 永不改变
        //  console.log(res);

        //  var res = strs.slice(-5,-9);//-5到-9 从右往左 
        //  var res = strs.slice(-9,-5);//可以拿到
    


        //  // 查找嗯方向是从左往右 所以这个拿不到任何结果 
        //  console.log(strs); // 原字符串 永不改变
        //  console.log(res);
        // var strs = '落叶归根,你归我';
        // var res = strs.split()
        // console.log(res);// ['落叶归根,你归我']

        // var res = strs.split('')
        // console.log(res);// ['落', '叶', '归', '根', ',', '你', '归', '我']
        // var res = strs.split(',')
        // console.log(res);// ['落叶归根','你归我']

        // 跟数组的join正好相反
        // 数组.join('连接符')   不写按照逗号
        // 字符串.split('分割符') 不写 不切这个放到数组中  最后数组只有一个元素

        // var strs = '你上辈子一定是碳酸饮料';
        // var res = strs.concat(',','为什么见到你就开心的冒泡泡')
        // console.log(res);
        // var data = 'https://'.concat('www.baidu.com')
        // console.log(data);


        // var strs = '我最喜欢的一个歌手是邓紫棋,一位有一首歌就是喜欢你,我觉得你一定是个近视,为什么看不出来我喜欢你';

        // var data = strs.indexOf('喜欢');
        // var data1 = strs.lastIndexOf('喜欢'); 
        // console.log(data,data1);// 2  45 
        // var data2 = strs.indexOf('喜欢',30);
        // var data3 = strs.lastIndexOf('喜欢',10); 
        // console.log(data2,data3);// 45  2
        // var data22 = strs.indexOf('华语音乐永远的神');
        // console.log(data22);  -1

        // var strs = '人的一生有两次比较幸运的旅行,一个是出生,一个是遇见你';

        // var res = strs.includes('遇见你');
        // console.log(res); // true 

        // var strs = '美女哪里人?山东人,山西人,不,你是我心上人?';
        // var data1 = strs.startsWith('美女')
        // var data2 = strs.endsWith('?')
        // console.log(data1,data2) //true true

        // var res = 'www.baidu.com'.startsWith('https://')?'ok':'https://'.concat('www.baidu.com')
        // console.log(res);

        // var strs = '   你是铃儿我是叮当,铃儿响叮当     ';

        // var res = '1234568910';
        // var data = '我觉得你是个地球,因为你对我有吸引力'
        // console.log(res.concat(strs.trim(),data))
        // console.log(res.concat(strs.trimLeft(),data))
        // console.log(res.concat(strs.trimStart(),data))
        // console.log(res.concat(strs.trimRight(),data))
        // console.log(res.concat(strs.trimEnd(),data))

        // var strs = '春眠不觉晓,处处对象可好';
        // var res = strs.replace('处处对象','谈谈恋爱');
        // console.log(res);

        // 封装一个函数 判断是否是完美数 

        // 12321  10101  1234321 
        // 从左到右 从右到左 一样的  这个数字就是完美数 


        // 自己封装函数转大小写  
        // 不能使用 toUpperCase()  toLowerCase()

  
    </script>
</body>
</html>